﻿using System.ComponentModel.DataAnnotations;

namespace MES.Server.API.Dto.Warehouse
{
    public class ProduceDTO
    {
        public long Id { get; set; }

        /// <summary>
        /// 生产编号
        /// </summary>
        public string ProduceCode { get; set; }
        /// <summary>
        /// 生产工单名称
        /// </summary>
        public string ProduceName { get; set; }

        /// <summary>
        /// 生产类型
        /// </summary>
        public int ProduceType { get; set; }

        /// <summary>
        /// 客户ID
        /// </summary>
        public long ClientId { get; set; }

        /// <summary>
        /// 产品物料群组ID
        /// </summary>
        public long MaterialGroupId { get; set; }

        /// <summary>
        /// 仓库地址
        /// </summary>
        public long WarehouseId { get; set; }

        /// <summary>
        /// 工艺ID
        /// </summary>
        public long ProcessFlowId { get; set; }

        /// <summary>
        /// 产线ID
        /// </summary>
        public long ProductionLineId { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime StartDate { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        public DateTime EntDate { get; set; }

        /// <summary>
        /// 生产数量
        /// </summary>
        public int ProduceNum { get; set; }
        /// <summary>
        /// 检查状态
        /// </summary>
        public bool Ischeck { get; set; }
        public string FlowCode { get; set; }
        /// <summary>
        /// 工艺流程名称
        /// </summary>
        public string FlowName { get; set; }

        /// <summary>
        /// 工序数量
        /// </summary>
        public int ProcessCount { get; set; }
        /// <summary>
        /// 负责人
        /// </summary>
        public long PersonId { get; set; }
        /// <summary>
        /// 所属部门
        /// </summary>
        public long DepartmentId { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public bool IsActive { get; set; } = true;
        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }
        /// <summary>
        /// 客户编码
        /// </summary>
        public string ClientCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string ClientName { get; set; }

        /// <summary>
        /// 联系方式
        /// </summary>
        public string ClientTel { get; set; }

        /// <summary>
        /// 客户简称
        /// </summary>
        public string ClientNickname { get; set; }

        /// <summary>
        /// 客户地址
        /// </summary>
        public string ClientAddr { get; set; }

        /// <summary>
        /// 社会信用代码
        /// </summary>
        public string ClientSocial { get; set; }

        /// <summary>
        /// 客户备注
        /// </summary>
        public string ClientDesc { get; set; }
        /// <summary>
        /// 物料群组编码
        /// </summary>
        public string MaterialGroupCode { get; set; }
        /// <summary>
        /// 物料群组名称
        /// </summary>
        public string MaterialGroupName { get; set; }
        /// <summary>
        /// 物料群组类型
        /// </summary>
        public string MaterialGroupType { get; set; }
        /// <summary>
        /// 物料群组描述
        /// </summary>
        public string MaterialGroupDesc { get; set; }
        /// <summary>
        /// 产线编码
        /// </summary>
        public string ProductionLineCode { get; set; }
        /// <summary>
        /// 产线名称
        /// </summary>
        public string ProductionLineName { get; set; }
        /// <summary>
        /// 所属车间外键
        /// </summary>
        public long WorkShopId { get; set; }
        /// <summary>
        /// 产线描述
        /// </summary>
        public string ProductionLineDesc { get; set; }
        /// <summary>
        /// 已生产数量
        /// </summary>
        public int FinishProduceNum { get; set; }
        /// <summary>
        /// 订单主键
        /// </summary>
        public long OrderId { get; set; }
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderCode { get; set; }
        /// <summary>
        /// 下单人
        /// </summary>
        public string OrderSon { get; set; }
        /// <summary>
        /// 订单数量
        /// </summary>
        public int OrderNum { get; set; }
        /// <summary>
        /// 订单状态
        /// </summary>
        public int OrderState { get; set; }
        /// <summary>
        /// 下单商品
        /// </summary>
        public string OrderGoods { get; set; }
        /// <summary>
        /// 是否引入了mes
        /// </summary>
        public bool IsOrder { get; set; }
        /// <summary>
        /// 车间编码
        /// </summary>
        public string WorkShopCode { get; set; }
        /// <summary>
        /// 车间名称
        /// </summary>
        public string WorkShopName { get; set; }
        /// <summary>
        /// 车间描述
        /// </summary>
        public string WorkShopDesc { get; set; }
        /// <summary>
        /// 仓库编号
        /// </summary>
        public string WarehouseCode { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }

        /// <summary>
        /// 库区数量
        /// </summary>
        public int WarehouseNum { get; set; }

        /// <summary>
        /// 仓管员
        /// </summary>
        public string WarehouseIdSon { get; set; }

        /// <summary>
        /// 仓库地址
        /// </summary>
        public string WarehouseAddr { get; set; }

        /// <summary>
        /// 仓库面积
        /// </summary>
        public string WarehouseArea { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string WarehouseDesc { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        public string CreaterPeople { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 修改人
        /// </summary>
        public string? UpdaterPeople { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }

    }
}
